RTOS添加sensor
1. 概述¶
RTOS和Linux共用sensor driver,想要RTOS支持sensor,只需Linux下支持的sensor即可。
sensor驱动路径:rtk/proj/sc/driver/sensordriver/
2. 添加方法¶
已有sensor driver后,RTOS添加步骤如下,以添加gc2053为例:
-
rtk/proj/sc/driver/sensordriver/drv/rtk_sensor.mak
在
rtk_sensor.mak
中的SRC_C_LIST
中添加:ifneq (,$(filter _SENSOR_GC2053_,$(SENSOR_SET))) SRC_C_LIST += drv_ms_cus_gc2053_MIPI.c endif
-
rtk/proj/sc/driver/sensordriver/drv/src/drv_ms_cus_gc2053_MIPI.c
将msleep改为 SENSOR_MSLEEP,语法报错按照提示修改即可,比如:
SensorReg_Read(0x17, &HFlip);
改为
SensorReg_Read(0x17, (void*)&HFlip);
-
rtk/proj/sc/driver/sensordriver/rtk/rtk_sensor_module_init.c
-
添加外部函数声明
#if defined(_SENSOR_GC2053_) extern int gc2053_init_driver(unsigned char chmap); #endif
-
在void rtk_sensor_module_init(void)函数中,添加初始化函数
#if defined(_SENSOR_GC2053_) #if (_SENSOR_GC2053_ == 0) gc2053_init_driver(_SENSOR0_CHMAP_); #elif (_SENSOR_GC2053_ == 1) g2053_init_driver(_SENSOR1_CHMAP_); #endif #endif
-
-
rtk/proj/mak/product/options_xxx.mak
在工程对应的product config下增加一行:
CONFIG_SENSOR0_GC2053 = TRUE
在不使用时可改为
FALSE
,则编译时将不加入编译。 -
rtk/proj/mak/common/common_option.mak
修改通用选项,对
CONFIG_SENSOR0_GC2053
作解析在编译时将添加_SENSOR_GC2053_
宏:ifeq ($(call FIND_COMPILER_OPTION, CONFIG_SENSOR0_GC2053), TRUE) SENSOR0_SET = _SENSOR_GC2053_ endif